#pragma once

#include "Handles.h"
#include "AudioTypes.h"

namespace Audio
{
	// Effect function declarations
	void EffectGain(float input, sndcore::Channel* channel);
	void EffectPan(float input, sndcore::Channel* channel);
	void EffectDist(float input, sndcore::Channel* channel);
	void EffectReverb(float input, sndcore::Channel* channel);

	struct Effect
	///////////////////////////////////////////////////////////////////////////////
	// Description: Maps a variable/graph pair to an effect that changes a channel
	//
	// Recent Changes:
	// -brasmuss 3/29/2007 : Created
	///////////////////////////////////////////////////////////////////////////////
	{
		Effect(GraphHandle graph, VariableHandle variable, effectfunc_t func, XMLFileHandle xmlFile)
			: m_graph(graph), m_variable(variable), m_func(func), m_xmlFile(xmlFile) {}
		GraphHandle		m_graph;
		VariableHandle	m_variable;
		XMLFileHandle	m_xmlFile;	//!< What XML file it came from
		effectfunc_t	m_func;
	};
}